我們已經成功將 n8n 部署在 Google Cloud Run 上,擁有一個穩定且可擴展的自動化平台。今天,我們要來玩 n8n 最強大的功能之一:Webhook。Webhook 就像是應用程式之間的專屬電話線,當某個事件發生時(例如有人填寫了表單),它會立即撥打電話通知 n8n,觸發後續的自動化流程。
我們將實作一個非常經典且實用的情境:「當使用者提交網頁表單後,自動將資料寫入指定的 Google Sheet。」
簡單來說,Webhook 是一個由事件驅動的 HTTP 回呼 (Callback)。
這比傳統的 API 輪詢 (Polling) 方式更有效率,因為 n8n 不需一直去問:「有新資料了嗎?」,而是被動地等待通知。
我們的目標是建立一個 n8n 工作流,它會:
+
新增節點,選擇 Webhook
作為觸發器 (Trigger)。POST
。Test
和 Production
兩種 URL。開發時我們先用 Test URL
。Test URL
Listen For Test Event
,n8n 就會開始等待接收測試資料。我們需要一個前端頁面來發送資料。你可以建立一個簡單的 index.html
檔案,內容如下。記得將 YOUR_WEBHOOK_URL
替換成上一步複製的 n8n Test URL。
\<\!DOCTYPE html\>
\<html lang="en"\>
\<head\>
\<meta charset="UTF-8"\>
\<title\>n8n Webhook 表單測試\</title\>
\</head\>
\<body\>
\<h1\>聯絡我們\</h1\>
\<form action="YOUR\_WEBHOOK\_URL" method="POST"\>
\<label for="name"\>姓名:\</label\>\<br\>
\<input type="text" id="name" name="name" required\>\<br\>\<br\>
\<label for="email"\>Email:\</label\>\<br\>
\<input type="email" id="email" name="email" required\>\<br\>\<br\>
\<button type="submit"\>提交\</button\>
\</form\>
\</body\>
\</html\>
index.html
檔案。{
"body": {
"name": "陳小明",
"email": "test@example.com"
}
}
現在我們要把收到的資料寫入 Google Sheet。
+
,搜尋並新增 Google Sheets
節點。Create New
並依照指示完成 OAuth 認證流程。Row
。Append
(新增一列)。https://docs.google.com/spreadsheets/d/THIS_IS_YOUR_SHEET_ID/edit
,複製中間那段亂碼。工作表1
。Add Column
。姓名
。</>
圖示,從 Nodes
> Webhook
> Output Data
> JSON
> body
中,拖曳 name
欄位過來。它的值會是 {{ $json.body.name }}
。Email
,值設為 {{ $json.body.email }}
。Execute Node
,n8n 會用上一步收到的測試資料來執行寫入操作。檢查你的 Google Sheet,應該會看到一筆新資料!Test
切換到 Production
,並複製 Production URL
。index.html
檔案中的 action
網址為新的 Production URL
。Active
開關,正式啟動你的工作流。現在,任何人只要透過你的網頁表單提交資料,都會即時地、自動地被記錄到 Google Sheet 中!
今天我們學會了如何使用 Webhook 這個強大的觸發器,實現了從前端到後端再到資料庫的完整自動化流程。這個模式可以應用在非常多的地方,例如:
明天,我們將探索另一種常見的觸發器:排程觸發 (Schedule Trigger),讓 n8n 在固定的時間自動為我們執行任務!